home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat3 / SCSL / sspgvx.z / sspgvx
Encoding:
Text File  |  2002-10-03  |  9.3 KB  |  265 lines

  1.  
  2.  
  3.  
  4. SSSSSSSSPPPPGGGGVVVVXXXX((((3333SSSS))))                                                          SSSSSSSSPPPPGGGGVVVVXXXX((((3333SSSS))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      SSPGVX - compute selected eigenvalues, and optionally, eigenvectors of a
  10.      real generalized symmetric-definite eigenproblem, of the form
  11.      A*x=(lambda)*B*x, A*Bx=(lambda)*x, or B*A*x=(lambda)*x
  12.  
  13. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  14.      SUBROUTINE SSPGVX( ITYPE, JOBZ, RANGE, UPLO, N, AP, BP, VL, VU, IL, IU,
  15.                         ABSTOL, M, W, Z, LDZ, WORK, IWORK, IFAIL, INFO )
  16.  
  17.          CHARACTER      JOBZ, RANGE, UPLO
  18.  
  19.          INTEGER        IL, INFO, ITYPE, IU, LDZ, M, N
  20.  
  21.          REAL           ABSTOL, VL, VU
  22.  
  23.          INTEGER        IFAIL( * ), IWORK( * )
  24.  
  25.          REAL           AP( * ), BP( * ), W( * ), WORK( * ), Z( LDZ, * )
  26.  
  27. IIIIMMMMPPPPLLLLEEEEMMMMEEEENNNNTTTTAAAATTTTIIIIOOOONNNN
  28.      These routines are part of the SCSL Scientific Library and can be loaded
  29.      using either the -lscs or the -lscs_mp option.  The -lscs_mp option
  30.      directs the linker to use the multi-processor version of the library.
  31.  
  32.      When linking to SCSL with -lscs or -lscs_mp, the default integer size is
  33.      4 bytes (32 bits). Another version of SCSL is available in which integers
  34.      are 8 bytes (64 bits).  This version allows the user access to larger
  35.      memory sizes and helps when porting legacy Cray codes.  It can be loaded
  36.      by using the -lscs_i8 option or the -lscs_i8_mp option. A program may use
  37.      only one of the two versions; 4-byte integer and 8-byte integer library
  38.      calls cannot be mixed.
  39.  
  40. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  41.      SSPGVX computes selected eigenvalues, and optionally, eigenvectors of a
  42.      real generalized symmetric-definite eigenproblem, of the form
  43.      A*x=(lambda)*B*x, A*Bx=(lambda)*x, or B*A*x=(lambda)*x. Here A and B are
  44.      assumed to be symmetric, stored in packed storage, and B is also positive
  45.      definite.  Eigenvalues and eigenvectors can be selected by specifying
  46.      either a range of values or a range of indices for the desired
  47.      eigenvalues.
  48.  
  49.  
  50. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  51.      ITYPE   (input) INTEGER
  52.              Specifies the problem type to be solved:
  53.              = 1:  A*x = (lambda)*B*x
  54.              = 2:  A*B*x = (lambda)*x
  55.              = 3:  B*A*x = (lambda)*x
  56.  
  57.      JOBZ    (input) CHARACTER*1
  58.              = 'N':  Compute eigenvalues only;
  59.              = 'V':  Compute eigenvalues and eigenvectors.
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. SSSSSSSSPPPPGGGGVVVVXXXX((((3333SSSS))))                                                          SSSSSSSSPPPPGGGGVVVVXXXX((((3333SSSS))))
  71.  
  72.  
  73.  
  74.      RANGE   (input) CHARACTER*1
  75.              = 'A': all eigenvalues will be found.
  76.              = 'V': all eigenvalues in the half-open interval (VL,VU] will be
  77.              found.  = 'I': the IL-th through IU-th eigenvalues will be found.
  78.  
  79.      UPLO    (input) CHARACTER*1
  80.              = 'U':  Upper triangle of A and B are stored;
  81.              = 'L':  Lower triangle of A and B are stored.
  82.  
  83.      N       (input) INTEGER
  84.              The order of the matrix pencil (A,B).  N >= 0.
  85.  
  86.      AP      (input/output) REAL array, dimension (N*(N+1)/2)
  87.              On entry, the upper or lower triangle of the symmetric matrix A,
  88.              packed columnwise in a linear array.  The j-th column of A is
  89.              stored in the array AP as follows:  if UPLO = 'U', AP(i + (j-
  90.              1)*j/2) = A(i,j) for 1<=i<=j; if UPLO = 'L', AP(i + (j-1)*(2*n-
  91.              j)/2) = A(i,j) for j<=i<=n.
  92.  
  93.              On exit, the contents of AP are destroyed.
  94.  
  95.      BP      (input/output) REAL array, dimension (N*(N+1)/2)
  96.              On entry, the upper or lower triangle of the symmetric matrix B,
  97.              packed columnwise in a linear array.  The j-th column of B is
  98.              stored in the array BP as follows:  if UPLO = 'U', BP(i + (j-
  99.              1)*j/2) = B(i,j) for 1<=i<=j; if UPLO = 'L', BP(i + (j-1)*(2*n-
  100.              j)/2) = B(i,j) for j<=i<=n.
  101.  
  102.              On exit, the triangular factor U or L from the Cholesky
  103.              factorization B = U**T*U or B = L*L**T, in the same storage
  104.              format as B.
  105.  
  106.      VL      (input) REAL
  107.              VU      (input) REAL If RANGE='V', the lower and upper bounds of
  108.              the interval to be searched for eigenvalues. VL < VU.  Not
  109.              referenced if RANGE = 'A' or 'I'.
  110.  
  111.      IL      (input) INTEGER
  112.              IU      (input) INTEGER If RANGE='I', the indices (in ascending
  113.              order) of the smallest and largest eigenvalues to be returned.  1
  114.              <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0 if N = 0.  Not
  115.              referenced if RANGE = 'A' or 'V'.
  116.  
  117.      ABSTOL  (input) REAL
  118.              The absolute error tolerance for the eigenvalues.  An approximate
  119.              eigenvalue is accepted as converged when it is determined to lie
  120.              in an interval [a,b] of width less than or equal to
  121.  
  122.              ABSTOL + EPS *   max( |a|,|b| ) ,
  123.  
  124.              where EPS is the machine precision.  If ABSTOL is less than or
  125.              equal to zero, then  EPS*|T|  will be used in its place, where
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. SSSSSSSSPPPPGGGGVVVVXXXX((((3333SSSS))))                                                          SSSSSSSSPPPPGGGGVVVVXXXX((((3333SSSS))))
  137.  
  138.  
  139.  
  140.              |T| is the 1-norm of the tridiagonal matrix obtained by reducing
  141.              A to tridiagonal form.
  142.  
  143.              Eigenvalues will be computed most accurately when ABSTOL is set
  144.              to twice the underflow threshold 2*SLAMCH('S'), not zero.  If
  145.              this routine returns with INFO>0, indicating that some
  146.              eigenvectors did not converge, try setting ABSTOL to
  147.              2*SLAMCH('S').
  148.  
  149.      M       (output) INTEGER
  150.              The total number of eigenvalues found.  0 <= M <= N.  If RANGE =
  151.              'A', M = N, and if RANGE = 'I', M = IU-IL+1.
  152.  
  153.      W       (output) REAL array, dimension (N)
  154.              On normal exit, the first M elements contain the selected
  155.              eigenvalues in ascending order.
  156.  
  157.      Z       (output) REAL array, dimension (LDZ, max(1,M))
  158.              If JOBZ = 'N', then Z is not referenced.  If JOBZ = 'V', then if
  159.              INFO = 0, the first M columns of Z contain the orthonormal
  160.              eigenvectors of the matrix A corresponding to the selected
  161.              eigenvalues, with the i-th column of Z holding the eigenvector
  162.              associated with W(i).  The eigenvectors are normalized as
  163.              follows:  if ITYPE = 1 or 2, Z**T*B*Z = I; if ITYPE = 3,
  164.              Z**T*inv(B)*Z = I.
  165.  
  166.              If an eigenvector fails to converge, then that column of Z
  167.              contains the latest approximation to the eigenvector, and the
  168.              index of the eigenvector is returned in IFAIL.  Note: the user
  169.              must ensure that at least max(1,M) columns are supplied in the
  170.              array Z; if RANGE = 'V', the exact value of M is not known in
  171.              advance and an upper bound must be used.
  172.  
  173.      LDZ     (input) INTEGER
  174.              The leading dimension of the array Z.  LDZ >= 1, and if JOBZ =
  175.              'V', LDZ >= max(1,N).
  176.  
  177.      WORK    (workspace) REAL array, dimension (8*N)
  178.  
  179.      IWORK   (workspace) INTEGER array, dimension (5*N)
  180.  
  181.      IFAIL   (output) INTEGER array, dimension (N)
  182.              If JOBZ = 'V', then if INFO = 0, the first M elements of IFAIL
  183.              are zero.  If INFO > 0, then IFAIL contains the indices of the
  184.              eigenvectors that failed to converge.  If JOBZ = 'N', then IFAIL
  185.              is not referenced.
  186.  
  187.      INFO    (output) INTEGER
  188.              = 0:  successful exit
  189.              < 0:  if INFO = -i, the i-th argument had an illegal value
  190.              > 0:  SPPTRF or SSPEVX returned an error code:
  191.              <= N:  if INFO = i, SSPEVX failed to converge; i eigenvectors
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. SSSSSSSSPPPPGGGGVVVVXXXX((((3333SSSS))))                                                          SSSSSSSSPPPPGGGGVVVVXXXX((((3333SSSS))))
  203.  
  204.  
  205.  
  206.              failed to converge.  Their indices are stored in array IFAIL.  >
  207.              N:   if INFO = N + i, for 1 <= i <= N, then the leading minor of
  208.              order i of B is not positive definite.  The factorization of B
  209.              could not be completed and no eigenvalues or eigenvectors were
  210.              computed.
  211.  
  212. FFFFUUUURRRRTTTTHHHHEEEERRRR DDDDEEEETTTTAAAAIIIILLLLSSSS
  213.      Based on contributions by
  214.         Mark Fahey, Department of Mathematics, Univ. of Kentucky, USA
  215.  
  216.  
  217. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  218.      INTRO_LAPACK(3S), INTRO_SCSL(3S)
  219.  
  220.      This man page is available only online.
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.